package game.forum;

import game.data.Constante;
import android.app.Activity;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.RadioButton;
import android.widget.RadioGroup;

public class OpcoesActivity extends Activity {

	private Button buttonDeletarFavoritos;
	private RadioButton radioPorOrdemLancamento;
	private RadioButton radioPorOrdemAlfabetica;
	private RadioGroup radioGroupOrdemResultado;

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.opcoes);
		inicializarWidgets();
		definirBotaoDeletarFavoritos();
		definirOrdemDosResultados();
	}

	private void inicializarWidgets() {
		buttonDeletarFavoritos = (Button) findViewById(R.id.buttonDeletarFavoritos);
		radioPorOrdemLancamento = (RadioButton) findViewById(R.id.radioPorOrdemLancamento);
		radioPorOrdemAlfabetica = (RadioButton) findViewById(R.id.radioPorOrdemAlfabetica);
		radioGroupOrdemResultado = (RadioGroup) findViewById(R.id.radioGroupOrdemResultado);
	}

	private void definirOrdemDosResultados() {
		int ordemAlfabetica = GameForumActivity.settings.getInt(
				Constante.ORDEM_ALFABETICA, -1);

		if (ordemAlfabetica == 1 || ordemAlfabetica == -1) {
			radioGroupOrdemResultado.check(R.id.radioPorOrdemAlfabetica);
		} else {
			radioGroupOrdemResultado.check(R.id.radioPorOrdemLancamento);
		}
		definirRadioButtonOrdemAlfabetica();
		definirRadioButtonOrdemLancamento();
	}

	private void definirRadioButtonOrdemLancamento() {
		radioPorOrdemLancamento
				.setOnCheckedChangeListener(new OnCheckedChangeListener() {

					public void onCheckedChanged(CompoundButton buttonView,
							boolean isChecked) {
						Editor editor = GameForumActivity.settings.edit();
						if (isChecked) {
							editor.putInt(Constante.ORDEM_ALFABETICA, 0);
							boolean success = editor.commit();

							if (!success) {
								try {
									throw new Exception();
								} catch (Exception e) {
									android.util.Log.getStackTraceString(e);
									android.util.Log.e("1",
											"Ele deveria ser salvo", e);
								}
							}

						}
					}
				});

	}

	private void definirRadioButtonOrdemAlfabetica() {
		radioPorOrdemAlfabetica
				.setOnCheckedChangeListener(new OnCheckedChangeListener() {

					public void onCheckedChanged(CompoundButton buttonView,
							boolean isChecked) {
						Editor editor = GameForumActivity.settings.edit();
						if (isChecked) {
							editor.putInt(Constante.ORDEM_ALFABETICA, 1);
							boolean success = editor.commit();
							if (!success) {
								try {
									throw new Exception();
								} catch (Exception e) {
									android.util.Log.getStackTraceString(e);
									android.util.Log.e("1",
											"Ele deveria ser salvo", e);
								}
							}
						}
					}
				});
	}

	private void definirBotaoDeletarFavoritos() {
		buttonDeletarFavoritos.setOnClickListener(new OnClickListener() {

			public void onClick(View v) {
				deletarFavoritos();
			}
		});
	}

	protected void deletarFavoritos() {
		GameForumActivity.database.delete(Constante.FAVORITOS, "1", null);
	}
}
